# coding:utf-8
# writingtime: 

'''Hamming距离'''
class Hamming:
    def __init__(self, IVQ1, IVQ2, q=3):
        '''

        :param IVQ1:
        :param IVQ2:
        :param q:
        '''
        self.IVQ1 = IVQ1
        self.IVQ2 = IVQ2
        self.q = q


    def getDistance(self):
        '''
        function: hamming 距离
        :param a: 区间值广义正交模糊数
        :param b: 区间值广义正交模糊数
        :param q: 参数q
        :return:
        '''
        a=self.IVQ1
        b=self.IVQ2
        q=self.q
        temp1 = abs(a[0][0] ** q - b[0][0] ** q) ** 2 + abs(a[0][1] ** q - b[0][1] ** q) ** 2
        temp2 = abs(a[1][0] ** q - b[1][0] ** q) ** 2 + abs(a[1][1] ** q - b[1][1] ** q) ** 2
        temp3 = abs((b[0][0] ** q + b[1][0] ** q) - (a[0][0] ** q + a[1][0] ** q)) ** 2
        temp4 = abs((b[0][1] ** q + b[1][1] ** q) - (a[0][1] ** q + a[1][1] ** q)) ** 2
        result = ((temp1 + temp2 + temp3 + temp4) / 4) ** (1 / 2)
        return result
